/*
    Mango - Open Source M2M - http://mango.serotoninsoftware.com
    Copyright (C) 2006-2011 Serotonin Software Technologies Inc.
    @author Matthew Lohbihler
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package com.serotonin.mango.db.dao;

import java.util.List;
import java.util.Set;

import org.joda.time.DateTime;
import org.scada_lts.mango.adapter.MangoMailingList;
import org.scada_lts.mango.service.MailingListService;

import com.serotonin.mango.vo.mailingList.EmailRecipient;
import com.serotonin.mango.vo.mailingList.MailingList;
import com.serotonin.mango.web.dwr.beans.RecipientListEntryBean;

/**
 * @author Matthew Lohbihler
 */
public class MailingListDao {

	MangoMailingList mailingListService = new MailingListService();

	public String generateUniqueXid() {
		return mailingListService.generateUniqueXid();
	}

	public boolean isXidUnique(String xid, int excludeId) {
		return mailingListService.isXidUnique(xid, excludeId);
	}

	public List<MailingList> getMailingLists() {
		return mailingListService.getMailingLists();
	}

	public MailingList getMailingList(int id) {
		return mailingListService.getMailingList(id);
	}

	public MailingList getMailingList(String xid) {
		return mailingListService.getMailingList(xid);
	}

	public Set<String> getRecipientAddresses(
			List<RecipientListEntryBean> beans, DateTime sendTime) {
		return mailingListService.getRecipientAddresses(beans, sendTime);
	}

	public void populateEntrySubclasses(List<EmailRecipient> entries) {
		mailingListService.populateEntrySubclasses(entries);
	}

	public void saveMailingList(final MailingList ml) {
		mailingListService.saveMailingList(ml);
	}

	void saveRelationalData(final MailingList ml) {
		mailingListService.saveRelationalData(ml);
	}

	public void deleteMailingList(final int mailingListId) {
		mailingListService.deleteMailingList(mailingListId);
	}
}
